This invention relates to apparatus and methods for the functional testing and troubleshooting of electronic circuitry. More specifically, this invention relates to electronic test equipment that is configured for use in the testing and repair of instruments, systems and assemblies that include a microprocessor circuit.
As is known to those skilled in the digital electronics arts, a microprocessor-based electronic system or assembly includes an integrated circuit known as a microprocessor which functions as a central processing unit (CPU) and which is interconnected with one or more random access and read only memory circuits (RAM's and ROM's) by means of the system bus structure which carries a stream of parallel format, digitally-encoded data words between the system components. In addition, each such assembly includes one or more input/output (I/O) circuits which permit data to be coupled into and out of the microprocessor-based system from a wide variety of input and output devices such as manually-operated keyboards and switches, information display devices, analog-to-digital converters, digital-to-analog converters, and various types of transducers that provide signals representative of the desired system stimuli and/or respond to an alarm or control signal provided by the microprocessor-based electronic system. As is also known to those skilled in the art, a microprocessor-based system or assembly often includes other types of digital circuit arrangements such as buffer stages, decoding networks and variously-configured arrangements of logic gates.
Since microprocessor-based systems are structurally simpler than comparable circuits employing discrete logic circuits that are arranged to exhibit the same or similar operational capabilities and since microprocessor-based systems can be manufactured at relatively low cost, the use of such systems has grown dramatically and continues to grow as new microprocessor-based products are developed and as new microprocessor circuits and associated memory devices of increased signal-processing capability become available. In this regard, the use of microprocessor-based systems has not been limited to replacements for electronic systems and assemblies that were previously realized by relatively complex arrangements of discrete logic circuitry but, in fact, has resulted in a wide variety of new products including small computers for business and home use and electronic games. Moreover, since microprocessor-based arrangements exhibit a relatively high reliability factor and can be manufactured at a relatively low cost, such circuits and systems are rapidly replacing electromechanical arrangements such as, for example, the control and timer assemblies used in home appliances, the electromechanical arrangements of pinball and various gaming machines, and the electromechanical computing and tabulation assemblies utilized within cash registers, typewriters and other business machines.
Although microprocessor-based systems and assemblies have numerous advantages from the standpoint of both the manufacturer and the system user, such systems exhibit certain disadvantages and drawbacks relative to the testing and troubleshooting that is necessary to maintain satisfactory quality control during the manufacturing process and to effectively maintain and repair such a system once it has been placed in service. In this regard, since the system primarily consists of integrated circuits that are interconnected with one another by means of the system bus structure, relatively few test points are available. Moreover, very few system failures can be detected by testing relatively static signal conditions within the system and satisfactory testing and troubleshooting requires the detection of system control, status, addressing and data signals which appear on the system bus as a rapidly changing series or string of digitally-encoded data words. Since the system bus is bidirectional, with data signals being coupled to and from various system components, traditional testing concepts which simply involve stimulating a device in a controlled manner and monitoring the response thereto becomes a relatively complex task.
Because of the above-mentioned factors, apparatus which permits an operator to access and examine various signals in a microprocessor-based assembly or system has not satisfied the need for test equipment which can be used in a wide variety of situations ranging from manufacturing tests of electronic assemblies and subassemblies to field service and repair of completed units. For example, to facilitate the design of microprocessor-based electronic assemblies and systems, the microprocessor manufacturers and others have developed relatively complex apparatus generically known as microprocessor development systems which permit an operator to interact with a microprocessor system by, for example, selectively establishing address and control signals as well as the value of ROM-stored signals as he or she sequentially steps through the microprocessor logic sequence or program. Moreover, most microprocessor development systems allow the operator to store a sequence of digitally-encoded signals that appear on the system bus between any two specific system states such as selected address signals, specified system command signals or specified states of the system data bus. The stored information can then be examined to locate programming faults.
Although microprocessor development systems provide substantial assistance in designing microprocessor-based systems by allowing the system designer to establish, evaluate and debug the system programming, such apparatus is of little use in manufacturing and field service environments since hardware-related faults and failures are not located. Moreover, satisfactory operation of such equipment requires an in-depth understanding of the manner in which the microprocessor-based system or assembly being tested is programmed and sequenced and requires substantial training and experience in the design and analysis of programmed apparatus.
To extend the capabilities of microprocessor development systems so as to permit the detection and isolation of hardware-related faults and failures, such systems have been combined with "in-circuit emulation" techniques wherein the test arrangement is configured to replace the microprocessor circuit of the system or assembly being tested. Interconnected in this manner, the test arrangement operates in conjunction with the assembly being tested to execute diagnostic routines or programs that are organized to detect operational faults and, in many cases, to isolate the fault to a particular component or group of components. The instructions and data utilized in these diagnostic tests are generally stored in the memory of the microprocessor development system, and are coupled to the microprocessor bus during the in-circuit emulation routine.
A third prior art approach, which has been applied alone and in combination with in-circuit emulation arrangements is known as "signature analysis". In signature analysis, a known, predetermined bit stream is applied to a sequential digital circuit of interest and the circuit response is collected and processed to form a hexadecimal value (a "signature") that is uniquely associated with that bit stream. By comparing the signature obtained when a unit under test is stimulated by the appropriate bit stream with the proper signature for that particular data path and stimulus, system malfunctions can be detected and, in some cases, the fault can be isolated to a particular semiconductor device or component. This method reduces the complexity of analysis of test data so that this test apparatus can be operated by less skilled personnel.
Diagnostic and testing programs have not proven entirely satisfactory regardless of whether the diagnostic system is completely internal to the microprocessor-based system or is effected through in-circuit emulation. In this regard, diagnostic programs that isolate system failures to a satisfactory level (e.g., to a particular printed circuit board in a relatively complex system or to a component level in the less complex arrangements) often require a development effort comparable to that required to develop the microprocessor-based system itself. Typically, the manufacturers of microprocessor-based systems and assemblies have been willing and competitively able to undertake such a task with respect to only the most complex and sophisticated types of systems and, because of the problems involved, have developed diagnostic and testing arrangements primarily for the type of microprocessor-based systems which are customarily serviced by the system manufacturer or its representatives. Further, not only does the establishment of effective diagnostic and testing routines require an in-depth knowledge and understanding of the arrangement being tested, but such testing arrangements preempt at least a portion of the memory circuits of the system or assembly to be tested, with the amount of system memory that is "lost" being minimized by the use of the above-mentioned diagnostic programs and in-circuit emulation techniques which include diagnostic routines that are stored in the test arrangement. More importantly, however, prior art diagnostic tests require that at least a portion of the unit being tested must be fully operational in order to execute the test procedures. For example, certain failures that cause one or more bits of the system bus to exhibit an unalterable logic state or other bus failures and conditions such as short circuits can easily prevent the execution of a diagnostic routine that is provided by incircuit emulation or by programming and hardware that is an integral part of the unit under test.
All of the above-mentioned considerations and problems associated with testing microprocessor-based assemblies and systems are compounded for the system user or any other business entity which attempts to service and maintain such systems and assemblies. In particular, these business entities may have to deal with systems or assemblies that employ different types of the various commercially-available microprocessor circuits. Additionally, even though personnel that are proficient in the programming of microprocessor-based systems may be available, the documentation required to establish suitable test procedures may not be available from the manufacturer of the assembly system. Even further, a manufacturer may make changes and modifications in a microprocessor-based system or assembly that affect the test routines established by the user, thereby disrupting a test program until adequate documentation is obtained and suitable changes in testing are implemented. Although some efforts have been made to provide test arrangements that can be adapted for use with assemblies that employ different types of microprocessor circuits, all prior art test arrangements appear to require at least some knowledge of the manner in which the unit to be tested is programmed or sequenced.
Accordingly, it is an object of this invention to provide apparatus for the testing and troubleshooting of microprocessor-based systems and assemblies wherein the test apparatus is suitable for use in various environments including the manufacturing test environment, use at regional repair centers and use as a field service instrument.
It is another object of this invention to provide apparatus for the testing and troubleshooting of microprocessor-based systems which can be operated without substantial training or knowledge in the design and operation of microprocessor-based systems and/or the sequencing or programming employed in the particular system or assembly to be tested.
It is still another object of this invention to provide apparatus for testing microprocessor-based assemblies and system which does not require or rely upon data or instructions stored within the unit to be tested or require the use of or "pre-empt" the use of the unit RAM.
It is yet another object of this invention to provide test apparatus for the testing and troubleshooting of a microprocessor-based system or assembly wherein the test apparatus remains functional and detects malfunctions appearing at or caused by the bus structure of the unit being tested.
Even further, it is an object of this invention to provide a test arrangement for microprocessor-based systems wherein the test arrangement can effect relatively extensive functional testing of such a system without any knowledge of the manner in which the system memory circuits are organized and accessed or the manner in which the unit to be tested is programmed or sequenced.
Additionally, it is an object of this invention to provide a test arrangement that meets the above set forth objects while being readily adaptable for testing systems and assemblies that utilize substantially any type of commercially available microprocessor circuit.